#ifndef CHAINUNITTESTS_H
#define CHAINUNITTESTS_H

#pragma once
#include "stdafx.h"
#include "TestUtils.h"
#include <cstdlib>


// all the next scenarios compare 2 chains with the Chain::Compare method
TestUtils::TestResult CompareBiggerAndSmallerChains();

// compares identical chains
TestUtils::TestResult CompareIdenticalChains();

// compares different chains that are equal according to Chain::Compare criteria
TestUtils::TestResult CompareEqualChains();

TestUtils::TestResult CompareSimilarNonEqualChains();

TestUtils::TestResult CompareSmallerLongerChain();

TestUtils::TestResult CompareBiggerLongerChain();

/*





TestUtils::TestResult CompareEqualLongerChain();
*/

// frees all the memory used by the chain tests
void CleanChainTests(VertexDirectory* dirA, VertexDirectory* dirB, Graph* graphA, Graph* graphB, 
					 Chain* chainA, Chain* chainB);

#endif //CHAINUNITTESTS_H